xend: Add syntax check for block devices
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 12 May 2008 10:19:09 +0000 (11:19 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 12 May 2008 10:19:09 +0000 (11:19 +0100)
If we define wrong values to a disk parameter in domain configuration
files, we get an error message or a guest OS panic.

 1. If we define a wrong disk type, xm create command error occurs
    about 100 seconds later.
      e.g.  disk=['xyz:/xen/root-vm1.img,hda1,w']

 2. If we forget a disk type, a guest OS panic occurs.
      e.g.  disk=['/xen/root-vm1.img,hda1,w']

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
tools/python/xen/xend/server/blkif.py

index 84d9b23f8e1f83fdc6c3e283bd05fefa9b69077c..6305a64ac74a660ccba16dbd99f06a093c9bc0c2 100644 (file)
@@ -56,8 +56,12 @@ class BlkifController(DevController):
         else:
             try:
                 (typ, params) = string.split(uname, ':', 1)
+                if typ not in ('phy', 'file'):
+                    raise VmError(
+                        'Block device must have "phy" or "file" specified to type')
             except ValueError:
-                (typ, params) = ("", "")
+                raise VmError(
+                    'Block device must have physical details specified')
 
         mode = config.get('mode', 'r')
         if mode not in ('r', 'w', 'w!'):